package com.learn._04mybatis.mapper;

import com.learn._04mybatis.pojo.User;
import com.learn._04mybatis.pojo.UserVO1;
import com.learn._04mybatis.pojo.UserVO2;
import com.learn._04mybatis.pojo.UserVO3;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

//对比去看demo4里面的实现类
// @Mapper 可以不用自己写实现类了
@Mapper
public interface UserMapper {
    /*
    * @Insert注解
    * 用于告知Mybatis框架，生成的实现类中重写的下面insert方法中要执行一条insert的sql语句
    * 这里注解中传入的就是要执行的sql语句insert，也是编译sql语句，只不过vales中的（）中的？占位符用”#{}“占位了
    * #{}中指定方法传入参数User的属性名字，用于告知Mybatis框架，将方法传入的参数中，按照指定的名字，去获取值
    * */
//    @Insert("insert into user(username,password,nickname,created)" + "values (#{username},#{password},#{nickname},#{created})")
    int insert(User user);

    int dynamicUpdate(User user);

    UserVO1 selectUserVO1ById(Integer id);

    UserVO2 selectUserWeiboById(Integer id);

    UserVO3 selectUserCommentById(Integer id);
}
